那天我正在街上做著資源回收,突然看到一位行動不便的大叔看著大樓上大屏幕正在播放的足球賽,我忍不住說出「tinyML這個球球不是這麼踢滴!」,結果引起大叔的質疑問道「那應該怎麼踢呀?」,我回道「一句話,腰馬合一,所謂腰馬合一呢,是我心目中浩氣長存的已故偉大武術家李小龍先生已經解釋過的。如果你想再多了解一點,那就跟我學兩堂tinyML的功夫吧!」。大叔一臉不相信,我只好拿出我親手寫的「正宗大力金鋼腿」的「研究僧」名片來讓他了解,我是如何有效地發揮少林功夫來研究踢tinyML這個球。
隨著2012年Alex Krizhevsky贏下ImageNet大賽後,從此深度學習(Deep Learning, DL), 卷積神經網路(Covolution Neural Network, CNN)就打開人工智慧的新大門。這十多年來「神經網路」能解決什麼問題幾乎都被試了個遍,不論是電腦視覺、自然語言、數據分析領域,或者監督、非監督、增強學習等技術,都有大幅成長。其中硬體算力的提升、公開模型和大型資料集的普及、加上開發工具的簡單化,促使更多人投人AI發展的領域,上到學術、科研、工程人員,下到國中小學生的專題製作,比比皆是。
不過隨著大家瘋狂建置軍火(算法、算力、資料集),如今的神經網路參數量早已從最早的數萬個參數(或稱權重)爆增到數千億個參數,而網路的深度也從不到十層增加到現在有數百到數千層。好像模型不夠大、參數不夠多,訓練模型沒有花個幾天幾夜,就不是好模型。可是在邊緣運算時這就不是一個好現象,因為執行推論的硬體在算力、價格、功耗及開發模型及推論的框架都有所限制的,就像無法讓腳踏車有汽車的能力一樣。
接下來就會分別從硬體、開發環境、AI原理及開發步驟逐一說明,就請大家耐心跟著學吧!
ps. 為讓文章更活潑傳達硬梆梆的技術內容,所以引用了經典電影「少林足球」的橋段,在此對星爺及電影公司致上崇高的敬意,希望小弟戲劇性的二創不會引起電影公司的不悅,敬請見諒。